package gson.gson.Interface;

import com.google.gson.*;
import model.User;

import java.lang.reflect.Type;

/**
 * 自定义反序列化类，使用 JsonDeserializationContext 的 deserialize 方法
 */
public class CustomJsonDeserializationContext implements JsonDeserializer<User> {

    /**
     * 实现 deserialize 方法，将 JSON 数据转换为 User 对象
     */
    @Override
    public User deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        // 获取 JSON 对象
        JsonObject jsonObject = json.getAsJsonObject();

        // 提取字段
        String userName = jsonObject.get("userName").getAsString();
        int age = jsonObject.get("age").getAsInt();
        String password = jsonObject.get("password").getAsString();

        // 返回 User 对象
        return new User(userName, age, password);
    }
}
